计算机网络 - 网络应用
接入网络应用类型
CS 客户/服务器
P2P 对等应用 场景:文件共享 特点:高度可伸缩 难以管理
混合结构: ?Napster 文件传输P2P 文件搜索采用C/S结构

网络应用对传输要求
- 可靠性
- 时延
- 带宽
- 安全



Web: Http 1.0 Http1.1
Email: SMTP MIME POP3 IMAP (IMAP有状态协议)
域名解析系统DNS
-
多层命名服务器构成的分布式数据库
-
应用层协议:完成名字解析
-
DNS服务域名翻译 主机别名 邮件服务器别名 负载均衡
Local DNS (如ISP提供的)
Root DNS
TLD DNS (权威域名服务器)
递归查询 (只用一次)
迭代查询(多次)
缓存、更新(TTL过期更新)
DNS记录(RR)
RR format: (name, value, ttl)
- Type=A Name: 主机域名 Value: IP地址
- Type=NS
Name: 域(如
edu.com) Value: 该域权威域名解析服务器的主机域名 - Type=
CNAMEName: 某一真实域名的别名 Value: 真实域名 - Type=
MXValue是与Name相对应的邮件服务器
Q:如何注册一个域名?
A: NS、A 、NS(需要邮件)RR
P2P应用
覆盖网络
洪泛式查询:覆盖网络

层次式覆盖网络

Socket编程

标识通信端点(对外):IP PORT
操作竹编/进程(对内):套接字描述符,是进程内的整数索引
# 查询80端口有哪些套接字连接
netstat -ano | findstr ":80"
# 查询所在里程是哪个程序
tasklist /FI "PID eq 6016"
tasklist | findstr 6016
winsocket为例
socketaddr_in
socket


closesocket

bind



listen(server)

connect(client)

TCP调用connect成功了一定可以进行通信,UDP就不一定了。
accept(server)

send sendto

recv recvfrom

setsockopt getsokopt
网络字节顺序

Inet_addr把10进制的IP地址转化成32位的IP地址。
Socket API(TCP)调用基本过程

服务端:解析IP、端口、协议号
TCP客户端:

UDP客户端:

所有内容来自,保留所有课程著作权限。文档仅限学习使用。
如有侵权联系 whalefallcl@icloud.com
https://www.icourse163.org/learn/HIT-154005?tid=1474180488#/learn/announce
协议
本作品代码部分采用 Apache 2.0协议 进行许可。遵循许可的前提下,你可以自由地对代码进行修改,再发布,可以将代码用作商业用途。但要求你:
- 署名:在原有代码和衍生代码中,保留原作者署名及代码来源信息。
- 保留许可证:在原有代码和衍生代码中,保留Apache 2.0协议文件。
- 署名:应在使用本文档的全部或部分内容时候,注明原作者及来源信息。
- 非商业性使用:不得用于商业出版或其他任何带有商业性质的行为。如需商业使用,请联系作者。
- 相同方式共享的条件:在本文档基础上演绎、修改的作品,应当继续以知识共享署名 4.0国际许可协议进行许可。